不同的編碼方式,在解碼的時候,可能導致亂碼,如下圖所示:
請先執行:
def decode1():
x = input()
a = ''
for i in x:
a+=i
if len(a)<6:
c = chr(int(a))
print(c)
else:
a=a[-1]
def decode2():
x = input()
a = ''
for i in x:
a+=i
if len(a)==5:
c=chr(int(a))
print(c, end='')
if len(a)>=6:
a=a[-1]
decode1 和 decode2 是我寫的二個功能(function),中文又稱作函式,最後一行的 # 解碼,示範 解碼 "20320229092196665311"這串數字。
以ASCII,big5,utf8,utf16四個編碼方式為例:
ord( ) <-> chr( )
ord('你')
20320
chr(20320)
'你'
a = '好'
a.encode('utf8')
b'\xe5\xa5\xbd'
print('\u4f60', '\u597d')
你 好
# ascii將中文字轉成utf16
ascii('你好嗎?')
"'\\u4f60\\u597d\\u55ce\\uff1f'"
# 記得先執行前面的 def
20320229092196665311
#decode1()
decode2()
20320229092196665311
你好嗎?
讀檔的時候,有時會加encoding='utf-8'這一行,來解決亂碼的問題。
with open('檔名.副檔名', encoding='utf-8') as f:
f.read...